package day03

/**
  * 声明类时不需要加public关键字，默认是public
  * 一个类文件可以声明多个类
  */
class Person {
  //用val修饰的变量只读，相当于只有get方法，没有set方法
  val id: String = "100"
  //用var修饰的变量相当于既有get又有set方法
  var name: String = _
  //用private修饰的属性，该属性属于对象私有变量，只能本类和伴生对象才能访问。
  private var age: Int = _
  //用private[this]修饰的属性，该属性属于对象私有变量，只有本类才能访问。
  private[this] val gender = "男"
}

object Person {
  def main(args: Array[String]): Unit = {
    val p = new Person()
    p.name = "Tod.xie"
    p.age = 30
    println(p.id)
    println(p.name)
    println(p.age)
  }
}

object Test1 {
  def main(args: Array[String]): Unit = {
    val p = new Person
    p.name = "Hello World"
    println(p.name)
    println(p.id)
  }
}
